# 2025.06.29力扣网刷题
# 删除字符使字符串变好——字符串——简单
# 一个字符串如果没有 三个连续 相同字符，那么它就是一个 好字符串 。
# 给你一个字符串 s ，请你从 s 删除 最少 的字符，使它变成一个 好字符串 。
# 请你返回删除后的字符串。题目数据保证答案总是 唯一的 。
# 示例 1：
# 输入：s = "leeetcode"
# 输出："leetcode"
# 解释：
# 从第一组 'e' 里面删除一个 'e' ，得到 "leetcode" 。
# 没有连续三个相同字符，所以返回 "leetcode" 。
# 示例 2：
# 输入：s = "aaabaaaa"
# 输出："aabaa"
# 解释：
# 从第一组 'a' 里面删除一个 'a' ，得到 "aabaaaa" 。
# 从第二组 'a' 里面删除两个 'a' ，得到 "aabaa" 。
# 没有连续三个相同字符，所以返回 "aabaa" 。
# 示例 3：
# 输入：s = "aab"
# 输出："aab"
# 解释：没有连续三个相同字符，所以返回 "aab" 。
# 提示：
# 1 <= s.length <= 10^5
# s 只包含小写英文字母。

class Solution(object):
    def makeFancyString(self, s):
        """
        :type s: str
        :rtype: str
        """
        res = ''
        length = len(s)
        i, n = 0, 1
        while i < length:
            if i and s[i] == s[i-1]:
                n += 1
                if n == 3:
                    n -= 1
                    i += 1
                    continue
            else:
                n = 1
            res += s[i]
            i += 1
        return res

if __name__ == '__main__':
    s = Solution()
    print(s.makeFancyString("leeetcode"))
    print(s.makeFancyString("aaabaaaa"))
    print(s.makeFancyString("aab"))